package com.vip.workflow.service;

import com.vip.common.response.Result;
import com.vip.workflow.dto.ProcessDTO;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

/**
 * 流程管理 Service
 *
 * @author wgb
 * @date 2020/5/7 18:26
 */
public interface IProcessService {
    /**
     * 分页获取流程列表
     *
     * @param pageNo
     * @param pageSize
     * @return
     */
    Result<List<ProcessDTO>> getProcessList(Integer pageNo, Integer pageSize);

    /**
     * 通过指定模板发布新流程
     *
     * @param modelId
     * @return
     */
    Result<String> deployNewProcessByModelId(String modelId);

    /**
     * 指定流程转换为模板
     *
     * @param processId
     * @return
     */
    Result<String> processConvertToModel(String processId);

    /**
     * 删除指定流程
     *
     * @param id
     * @return
     */
    Result<String> deleteProcessById(String id);

    /**
     * 批量删除流程
     *
     * @param ids
     * @return
     */
    Result<String> deleteMultiProcessById(List<String> ids);

    /**
     * 获取指定流程的指定类型的数据
     *
     * @param type
     * @param id
     * @return
     */
    InputStream resourceReadByTypeAndId(String type, String id);

    /**
     * 上传部署流程
     *
     * @param file
     * @return
     */
    Result<String> uploadAndDeploy(MultipartFile file);
}
